/*
 * Copyright (c) 2020 - present, Inspur Genersoft Co., Ltd.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.inspur.edp.web.frontendproject.zerocode.operation.sourcegenerate;

import com.inspur.edp.web.common.entity.TerminalType;
import com.inspur.edp.web.common.io.FileUtility;
import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeFormFormatParameter;
import com.inspur.edp.web.frontendproject.zerocode.ZeroCodeParameter;

public class SourceCodePathGenerator {
    public static String generate(ZeroCodeParameter zeroCodeParameter, TerminalType terminalType) {
        if (terminalType == TerminalType.MOBILE) {
            return getMobileAppPath(zeroCodeParameter.getAbsoluteBasePath());
        }
        return  getAppPath(zeroCodeParameter.getAbsoluteBasePath());
    }

    public static String generateFormFormatSourcePath(
            ZeroCodeParameter zeroCodeParameter,
            ZeroCodeFormFormatParameter formFormatParameter,
            TerminalType terminalType) {
        String basePath = FileUtility.combine(zeroCodeParameter.getAbsoluteBasePath(), "form-format", formFormatParameter.getFormFormatConfigId());
        if (terminalType == TerminalType.MOBILE) {
            return getMobileAppPath(basePath);
        }
        return getAppPath(basePath);
    }

    /**
     * 获取生成文件代码的路径
     *
     * @param absolutePath
     * @return
     */
    private static String getAppPath(String absolutePath) {
        return FileUtility.getPlatformIndependentPath(FileUtility.combine(absolutePath, "src", "app"));
    }

    /**
     * 获取生成文件代码的路径
     *
     * @param absolutePath
     * @return
     */
    private static String getMobileAppPath(String absolutePath) {
        return FileUtility.getPlatformIndependentPath(FileUtility.combine(absolutePath, "src", "mobileapp"));
    }
}
